﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class inventario : Form
    {
        GestiónAcademia ges = new GestiónAcademia();
        public inventario()
        {
            InitializeComponent();
        }

        private void btingresar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtcodigo.Text) | string.IsNullOrWhiteSpace(txtnombre.Text) | string.IsNullOrWhiteSpace(txtdesc.Text) | string.IsNullOrWhiteSpace(txtstock.Text))
            {
                MessageBox.Show("Faltan datos! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                int stock = Convert.ToInt32(txtstock.Text);
                string insertar = ges.insertarArticulo(txtcodigo.Text, txtnombre.Text, txtdesc.Text, stock);
                MessageBox.Show(insertar, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (insertar == "Nuevo artículo ingresado")
                {
                    limpiarCampos();
                    txtcodigo.Focus();
                    grillaInventario.DataSource = ges.getArticulos();
                    grillaInventario.DataMember = "articulos";
                    llenarGrilla();
                }
            }
        }

        public void limpiarCampos()
        {
            txtcodigo.Text = "";
            txtnombre.Text = "";
            txtdesc.Text = "";
            txtstock.Text = "";
            txtModCod.Text = "";
            txtModNombre.Text = "";
            txtModDesc.Text = "";
            txtModCod.Text = "";
            txtbusqueda.Text = "";
            txtfiltro.Text = "";
            txtModStock.Text = "";
        }

        private void inventario_Load(object sender, EventArgs e)
        {
            cbFiltro.SelectedIndex = 0;
            txtcodigo.Focus();
            grillaInventario.DataSource = ges.getArticulos();
            grillaInventario.DataMember = "articulos";
            llenarGrilla();
        }

        public void llenarGrilla()
        {
            grillaInventario.Columns[0].HeaderText = "Código";
            grillaInventario.Columns[1].HeaderText = "Nombre";
            grillaInventario.Columns[2].HeaderText = "Descripción";
            grillaInventario.Columns[3].HeaderText = "Stock";



    }

        private void txtstock_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void txtModStock_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void txtcodigo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void txtfiltro_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void txtModCod_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void btmodificar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtModCod.Text) | string.IsNullOrWhiteSpace(txtModNombre.Text) | string.IsNullOrWhiteSpace(txtModDesc.Text) | string.IsNullOrWhiteSpace(txtModStock.Text))
            {
                MessageBox.Show("Faltan datos! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                int modstock = Convert.ToInt32(txtModStock.Text);

                string sql = "UPDATE articulo SET nombre = '" + txtModNombre.Text + "', descripcion = '" + txtModDesc.Text + "', stock = '" + txtModStock.Text + "' WHERE codigo = '" + txtModCod.Text + "'";
                ges.BDupdate(sql);
                limpiarCampos();
                txtcodigo.Focus();
                grillaInventario.DataSource = ges.getArticulos();
                grillaInventario.DataMember = "articulos";
                llenarGrilla();
                btmodificar.Enabled = false;
            }
        }

        private void btbuscar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtfiltro.Text))
            {
                MessageBox.Show("Ingrese un dato!", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                limpiarCampos();
            }
            else
            {
                Articulo art = ges.buscarArticulo(txtfiltro.Text);
                txtModCod.Text = art.codigo;
                txtModNombre.Text = art.nombre;
                txtModDesc.Text = art.descripcion;
                txtModStock.Text = art.stock.ToString();
                btmodificar.Enabled = true;                
            }
        }

        private void txtfiltro_MouseClick(object sender, MouseEventArgs e)
        {
            if (txtfiltro.Text == "Ingrese ID de artículo")
            {
                txtfiltro.Text = "";
            }
        }

        private void txtfiltro_MouseHover(object sender, EventArgs e)
        {
            toolTip1.Show("Ingrese el código del artículo\nque desea modificar.", txtfiltro);
        }

        private void txtfiltro_TextChanged(object sender, EventArgs e)
        {
            if (txtfiltro.Text != "Ingrese ID de artículo")
            {
                btbuscar.Enabled = true;
            }
        }

       /* private void button2_Click(object sender, EventArgs e)
        {
            if (cbFiltro.Text == "Todos")
            {
                grillaInventario.DataSource = ges.verInventario("");
                grillaInventario.DataMember = "INVENTARIO";
                llenarGrilla();
            }
            else if (!(cbFiltro.Text == "Todos"))
            {
                if (string.IsNullOrWhiteSpace(txtbusqueda.Text) && cbFiltro.Text == "")
                {
                    MessageBox.Show("Debe seleccionar una opción e ingresar un dato para poder buscar.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    grillaInventario.DataSource = ges.verInventario(" WHERE " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%'");
                    grillaInventario.DataMember = "INVENTARIO";
                    llenarGrilla();
                }
            }
            else
            {
                MessageBox.Show("Búsqueda sin resultados");
            }
        }*/

        private void cbFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbFiltro.Text == "Todos")
            { txtbusqueda.Enabled = false;
            grillaInventario.DataSource = ges.verInventario("");
            grillaInventario.DataMember = "INVENTARIO";
            llenarGrilla();
            }
            else
            {
                grillaInventario.DataSource = ges.verInventario(" WHERE " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%'");
                grillaInventario.DataMember = "INVENTARIO";
                llenarGrilla();
                txtbusqueda.Enabled = true;
                txtbusqueda.Text = "";
                if (cbFiltro.Text == "stock")
                {
                    txtbusqueda.MaxLength = 3;
                }
                if (cbFiltro.Text == "codigo")
                {
                    txtbusqueda.MaxLength = 12;
                }
                if (cbFiltro.Text == "nombre")
                {
                    txtbusqueda.MaxLength = 40;
                }
                if (cbFiltro.Text == "descripcion")
                {
                    txtbusqueda.MaxLength = 80;
                }
            }
        }

        private void txtbusqueda_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (cbFiltro.Text == "codigo" || cbFiltro.Text == "stock")
            {
                if (Char.IsDigit(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                    if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                    {
                        e.Handled = false;
                    }
                    else
                    {
                        //el resto de teclas pulsadas se desactivan 
                        e.Handled = true;
                    }
            }
        }

        private void txtbusqueda_TextChanged(object sender, EventArgs e)
        {            
            grillaInventario.DataSource = ges.verInventario(" WHERE " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%'");
            grillaInventario.DataMember = "INVENTARIO";
            llenarGrilla();
        }
        }
        
}
